1. Field of the Invention
The present invention relates generally to a data synchronizing system and a method of synchronizing data between a server and a client, and in particular, to a method of synchronizing data between a mobile terminal and a server for storing data received from the mobile terminal.
2. Description of the Related Art
Typically, a mobile terminal user saves personal information such as a directory and schedules in the mobile terminal. When the old mobile terminal is replaced with a new one for some reasons such as breakage or loss, information in the old mobile terminal is stored and managed in a separate data storage server so that the new mobile terminal can use the information. To preserve the same information in both the mobile terminal and the data storage server, data synchronization must be carried out if data, on either the mobile terminal or the data storage server has been changed.
Generally, the data synchronization is performed upon request for synchronization from the mobile user.
FIG. 1 is a flowchart illustrating a conventional data synchronizing operation between a server 20 and a client 10. The server 20 corresponds to the data storage server and the client 10 corresponds to the mobile terminal. Referring to FIG. 1, as the client 10 requests data synchronization to the server 20, a sync session is initiated in step S11. The client 10 detects the last anchor (anchors are described below) in existing synchronization information in step S13 and transmits to the server 20 the last anchor and the next anchor that provides time information about the initiation of the current sync session in step S15. The server 20 compares the last anchor stored in the server with the received last anchor of the client 10 in step S17 and notifies the client 10 of the comparison result in step S19.
The client 10 analyzes the comparison result in step S21. If the last anchor of the client 10 is identical to that of the server 20, the client 10 is synchronized to the server 20 and transmits changed information to the server 20. That is, if the last anchors are the same, the client 10 determines whether its change log management database (DB) is normal in step S23. Normal is the status of operating the change log management DB without any error. If it is normal, the client 10 prepares for delivering a change log to the server 20 in step S25.
On the other hand, if the last anchors are different and the change log management DB in the client 10 is not normal, the client 10 prepares to deliver its whole stored information in step S27.
Upon preparation of the information to be delivered to the server 20 in step S25 or S27, the client 10 transmits the prepared information (the whole information or the change log) to the server 20 in step S29. In step S31, the server 20 updates its DB with the received information.
When the synchronization is carried out successfully in steps S11 through S31, the server 20 and the client 10 update their last anchors in steps S33 and S35. That is, they change the next anchor describing the current sync session to the last anchor.
The synchronization between the client 10 and the server 20 though transmission of the whole contents of the DB is called slow sync. The slow sync is performed in the case where the server or client have lost their change log or their last anchors are different, as described above. When the client completely transmits the whole data to the server, the server compares its stored data with the received data field by field and transmits changed data to the client 10. The client 10 then synchronizes its data with the received data.
In the above described conventional synchronization, the server and the client separately manage data, sync anchors, and change logs, and perform synchronization based on these separately managed processes. When their last anchors are different or a change log is lost, a slow sync is carried out including transmission of the whole data.
A distinctive shortcoming of the slow synch is slow speed of processing as compared to a method of transmitting only a change log. Therefore, if the slow sync occurs frequently, a synchronization delay exists between the server and the client.